ShipHero GraphQL Public API
ShipHero’s public API provides access to platform data and operations for custom integrations. It is built on GraphQL, allowing clients to request exactly the fields they need for each workflow.
Latest Changes
2026 July 16th:
Added the webhooks_call_logs query for checking webhook delivery history after a webhook is created. It returns paginated call metadata, including timestamps, destination URLs, HTTP status codes, and response metadata, so integrations can verify that an endpoint is being called without exposing webhook payloads. Requires the view:webhooks scope.
Updated wholesale_order_import_packing_layout and the Import Packing Layout flow. Pallet and Package inputs now use mutually exclusive custom_box_id or carrier_box_code box references instead of shipping_box_id; referenced boxes supply their dimensions. CasePack and UOM Pallet inputs can use submitted dimensions and weight as overrides, or omit them to use the linked product case configuration.
2026 July 2nd: Added third_party_shipper to the order_create mutation input. Use it to provide third-party billing details for created orders: account_number, zip, and country.
2026 July 2nd: Added customer_account_id to mergeable_orders.data so 3PL users can filter mergeable order candidates to a specific customer account they manage. The Merge Orders flow now includes an example using the filter with existing mergeable order filters.
2026 June 29th: Added the pause_shipping filter to the orders query for 3PL accounts. Use pause_shipping: true to find orders for customers with paused shipping, or pause_shipping: false to find orders where shipping is not paused. The filter can be combined with warehouse_id to evaluate the customer relationship for a specific warehouse.
2026 June 25th:
Expanded the wholesale “packed outside ShipHero” flow:
- Added
wholesale_order_mark_as_packedto transition a wholesale order frompackingtopackedafter the packing layout has been imported. It creates the License Plate Numbers (LPNs) for the imported containers, moves inventory out of the staging bin into them, and seeds SSCC-18 barcodes for trading partners that require GS1 labeling. Optional step. - Added
wholesale_order_generate_labelsto asynchronously generate shipping and GS1/carton labels for a packed wholesale order. Optional step. - Added
wholesale_order_print_labelsto mark a wholesale order’s labels as printed and retrieve the shipping labels PDF. Optional step. wholesale_order_import_packing_layout:CasePackentries no longer accept aquantityfield — eachCasePackrepresents exactly one physical shippable unit (one SSCC-18 barcode). To pack multiple cases, send separate single-unitCasePackentries.
2026 June 24th: Added the tote_transfer_to_location mutation to move the current picked contents of a tote into a destination location/bin. The tote and destination location must be accessible to the token and belong to the same warehouse. See the schema reference for input and response fields.